package cn.patient.pp.module.patients.controller.admin.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 患者总新增/修改 Request VO")
@Data
public class PatientsDOSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "12073")
    private Integer id;

    @Schema(description = "管理地区", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String managementRegion;

    @Schema(description = "管理机构", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "李四")
    private String managementOrgName;

    @Schema(description = "患者姓名", example = "王五")
    private String patientName;

    @Schema(description = "患者编号", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
    private String patientCode;
    @Schema(description = "管理机构id", example = "8972")
    private String deptId;

    @Schema(description = "证件号码")
    private String idNumber;

    @Schema(description = "监护人")
    private String guardian;

    @Schema(description = "监护人电话")
    private String contact;

    @Schema(description = "下次随访日期")
    private String nextFollowupDate;

    @Schema(description = "患者性别")
    private String gender;

    @Schema(description = "出生日期")
    private String birthDate;

    @Schema(description = "年龄")
    private Integer age;

    @Schema(description = "常住类型", example = "1")
    private String residenceType;

    @Schema(description = "现住详细地址")
    private String currentAddress;

    @Schema(description = "户籍地址")
    private String permanentAddress;

    @Schema(description = "目前诊断")
    private String currentDiagnosis;

    @Schema(description = "知情同意")
    private String informedConsent;

    @Schema(description = "是否线索")
    private String clue;

    @Schema(description = "负责人名称")
    private String responsiblePerson;

    @Schema(description = "建档日期")
    private String recordDate;

    @Schema(description = "末次修改时间")
    private String lastModified;

    @Schema(description = "末次随访时间")
    private String lastFollowupDate;

    @Schema(description = "是否死亡")
    private String deceased;

    @Schema(description = "死亡日期")
    private String deathDate;

    @Schema(description = "失访原因", example = "不好")
    private String lostReason;

    @Schema(description = "住院状态", example = "1")
    private String hospitalizationStatus;

    @Schema(description = "危险性评估")
    private String riskAssessment;

    @Schema(description = "用药依从性")
    private String medicationAdherence;

    @Schema(description = "危险行为")
    private String dangerousBehavior;

    @Schema(description = "轻度滋事（次）", example = "20723")
    private Integer minorNuisanceCount;

    @Schema(description = "肇事（次）", example = "6763")
    private Integer incidentCount;

    @Schema(description = "肇祸（次）", example = "25668")
    private Integer offenseCount;

    @Schema(description = "其他危险行为（次）", example = "29001")
    private Integer otherDangerousBehaviorCount;

    @Schema(description = "自伤（次）", example = "11769")
    private Integer selfHarmCount;

    @Schema(description = "自杀未遂（次）", example = "12524")
    private Integer suicideAttemptCount;

    @Schema(description = "末次发病时间")
    private String lastOnsetDate;

    @Schema(description = "末次出院时间")
    private String lastDischargeDate;

    @Schema(description = "末次应急时间")
    private String lastEmergencyDate;

    @Schema(description = "末次体检时间")
    private String lastPhysicalExamDate;

    @Schema(description = "末次有奖时间")
    private String lastRewardDate;

    @Schema(description = "末次减免服药时间")
    private String lastMedicationReductionDate;

    @Schema(description = "末次开案时间")
    private String lastCaseOpenDate;

    @Schema(description = "知情同意书时间")
    private String consentFormDate;

    @Schema(description = "联系人姓名", example = "王五")
    private String contactName;

    @Schema(description = "联系人电话")
    private String contactPhone;

}